lib.use(['element', 'table', 'form','tablePlug','tree'], function () {
    var table = layui.table;
    var layer = layui.layer;
    var form = layui.form;
    var tree = layui.tree;
    //表格插件
    var uomTable;
    var pId=0;
    //初始表格基础参数
    table.set(common.layui.table.config());

    // 渲染表格
    uomTable = table.render({
            elem: '#remodelTable'
            , url: common.util.createUrl('/act/remodel/list')
            , cols: [[
                {type:'checkbox'}
               ,{type: 'numbers', title: '编号' }
               ,{ field: 'id',  hide: true }
               ,{ title: '模板名称', field: 'name'}
               ,{ title: '模板标识', field: 'key'}
               ,{ title: '版本号', field: 'revision'}
               ,{ title: '创建时间', field: 'createTime'}
               ,{ title: '修改时间', field: 'lastUpdateTime'}
               ,{
                    field: 'id',fixed: 'right', title: '操作', width: 140, templet: function (row) {
                        return  '<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="edit">编辑</a><a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="release">发布</a>';
                    }
                }
            ]]
    });
    //监听单元格事件
    table.on('tool(remodelTableFilter)', function (obj) {
        if (obj.event === 'edit') {

            var config={
                type: 2,
                area: [($(window).width()*0.9)+'px', ($(window).height() *0.9)+'px'],
                shadeClose: false,
                closeBtn:1,
                success: $.noop,
                cancel:$.noop,
                end:$.noop,
                title:"流程模板编辑",
                content: common.util.createUrl("/modeler.html?modelId="+obj.data.id+"&token="+common.util.getAccessToken())
            }
            parent.layer.open(config);
        }
        if (obj.event === 'del') {
            del(obj);
        }
        if(obj.event==='release'){
            common.ajax.get('/act/remodel/deploy?id='+obj.data.id, {}, function (resp) {
               common.util.success(resp.msg)
            })
        }
    });

    common.ajax.post('/base/uom/tree', {}, function (resp) {
        //开启节点操作图标
        tree.render({
            elem: '#uomTree'
            ,data: resp.data
            ,onlyIconControl:true
            ,click: function(obj){
                var data = obj.data;  //获取当前点击的节点数据
                pId=data.id;
                searchTable({pId:pId});
            }
        });
    });

    /**
     * 监听行单击事件，进入编辑事件
     */
    table.on('rowDouble(uomTableFilter)', function(obj){
        update(obj)
    });
    /**
     * 监听删除按钮事件
     */
    $(document).on('click','#del',function(){
        del(table.checkStatus('uomTable'))
    });

    /**
     * 监听编辑按钮事件
     */
    $(document).on('click','#update',function(){
        //update(table.checkStatus('uomTable'))
    });
    /**
     * 监听新增按钮事件
     */
    $(document).on('click','#add',function(){
        var config = {
            title:" 新增流程模型",
            content: 'act/remodel/remodelForm.html' //iframe的url，no代表不显示滚动条
        }
        common.util.openWindow(busCommon.baseWindowConfig(config))
    });


    /**
     * 监听搜索条件提交事件
     */
    form.on('submit(searchFilter)', function(data){
        var param = data.field;
        searchTable(param)
        return false;
    });

    /**
     * 查询表格
     * @param params
     */
    function searchTable(params) {
        params=$.extend(params,common.from.serializeObject('#searchFrm'))
        uomTable.reload({where: params})
    }

    /**
     * 修改
     * @param obj
     */
    function update(obj) {
        var postData = [];
        if(obj.data.constructor === Array){
            postData=obj.data.map(function (item) {
                return item['id'];
            });
        }else{
            postData=[obj.data.id]
        }
        if(postData.length!=1){common.util.error('请选择一条记录');return;}
        var config = {
            title:"新增计量单位",
            content: 'base/uom/uomForm.html?id=' + postData[0], //iframe的url，no代表不显示滚动条
        }
        common.util.openWindow(busCommon.baseWindowConfig(config))
    }
    /**
     * 删除
     * @param obj
     */
    function del(obj) {
        var postData = [];
        if(obj.data.constructor === Array){
            postData=obj.data.map(function (item) {
                return item['id'];
            });
        }else{
            postData=[obj.data.id]
        }

        if(postData.length!=1){common.util.error('请选择一条记录');return;}
        layer.confirm('确认删除!', function(index){
                console.log('Del param is', postData);
                common.ajax.get('/base/uom/delete/'+postData[0], {}, function (resp) {
                    searchTable();
                    layer.close(index);
                })

         });
    }
    window.formCallBack=function (params) {
          searchTable(params);
    };
});
